﻿using CRM.Infrastructure.Attr;
using CRM.Infrastructure.Dto.Request.products;
using CRM.Infrastructure.Dto.Response;
using CRM.Infrastructure.Dto.Response.product;
using CRM.Infrastructure.EFCore.Mysql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CRM.Service.Interface
{
    [Provider_]
    public interface I_Products_Service
    {
        Task<Api_Response_Dto> Add_product(Product_Response_Dto dto);
        Task<Api_Response_Dto> Add_Products_Types(string name);
        Task<Api_Response_Dto> Delete_Product(string id);
        Task<Api_Response_Dto> Details_Products(string id, string key = "");
        Task<Api_Response_Dto> Get_Products_Types(int page = 1, int limit = 10, string key = "");
        Task<Api_Response_Dto> UpdateProductImageUrl(string productId, string imageUrl);
        Task<Api_Response_Dto> add_upload(string imageUrl);
        Task<Api_Response_Dto> Update_Product(Product_Response_Dto dto);
        Task<Api_Response_Dto> Update_Product_Type(string id, string name);
        Task<Api_Response_Dto> Get_Products(string key, int page = 1, int limit = 10);
        Task<Api_Response_Dto> Get_Products_Types_Products();
        Task<Api_Response_Dto> Update_List(string id);
        Task<Api_Response_Dto> Delete_Product_Type(string id);
        Task<Api_Response_Dto> Details_Products_single(string id);
        Task<Api_Response_Dto> Add_Setmenu(Product_Response_Dto[] dto, string name, int list);
        Task<Api_Response_Dto> Get_Setmenu(string key, int page = 1, int limit = 10);
        Task<Api_Response_Dto> Update_Setmenu(Product_Response_Dto[] dto, string id, string name,int list);
        Task<Api_Response_Dto> Get_Setmenu_product(string id);
        Task<Api_Response_Dto> Del_Setmenu(string id);
    }
}
